var expect = require("chai").expect;

module.exports = function (helpers) {
  var colors = ["blue", "green", "red"];
  var component = helpers.mount(require.resolve("./index"), {
    color: colors[0],
  });

  if (helpers.isHydrate) {
    // When hydrating, the first color item was rendered on the
    // server so there is no corresponding attach event f
    // we'll push an empty event so the indexes line up
    component.events.push(null);
  } else {
    expect(component.events.length).to.equal(1);
    expect(component.events[0].color).to.equal("blue");
    expect(component.events[0].node).to.equal(
      component.el.querySelectorAll("li")[0],
    );
  }

  component.input = { color: colors[1] };
  component.update();

  expect(component.events.length).to.equal(2);
  expect(component.events[1].color).to.equal(colors[1]);
  expect(component.events[1].node).to.equal(
    component.el.querySelectorAll("li")[0],
  );

  component.input = { color: colors[2] };
  component.update();

  expect(component.events.length).to.equal(3);
  expect(component.events[2].color).to.equal(colors[2]);
  expect(component.events[2].node).to.equal(
    component.el.querySelectorAll("li")[0],
  );

  component.input = { color: colors[0] };
  component.update();

  expect(component.events.length).to.equal(4);
  expect(component.events[3].color).to.equal(colors[0]);
  expect(component.events[3].node).to.equal(
    component.el.querySelectorAll("li")[0],
  );

  component.input = { color: colors[2] };
  component.update();

  expect(component.events.length).to.equal(5);
  expect(component.events[4].color).to.equal(colors[2]);
  expect(component.events[4].node).to.equal(
    component.el.querySelectorAll("li")[0],
  );
};
